<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body></body>
  <script>
    // 从外部读取变量
    // function f1() {
    //   var s = 999;
    //   return function f2() {
    //     alert(s);
    //   };
    // }
    // f1(); //不执行
    // f1()();

    // 闭包
    // function f1(){
    //     var s = 999;
    //     function f2(){
    //         alert(s)
    //     }
    //     return f2  //闭包，将函数内部和函数外部链接起来的桥梁
    // }
    // f1()()  //弹出999

    // 让上述代码输出123
    // 自执行函数
    // for (var i = 1; i <= 3; i++) {
    //   // 用函数包裹起来，定时器
    //   (function (a) {
    //     setTimeout(function () {
    //       console.log(a);
    //     }, 0);
    //   })(i);
    // }

    // 声明变量用let 是块级作用域
    // let相当于var
    // var 作用域：全局，函数
    // let作用域：全局，函数，块级

    // for (let i = 1; i <= 3; i++) {
    //   setTimeout(function () {
    //     console.log(i);
    //   },0);
    // }

    for (var i = 0; i <= 5; i++) {
      //同步方法i变6
      ((a)=>{
        setTimeout(()=>{
            // 异步执行
            console.log(a);
        },a*1000)
      })(i)
    }
    console.log(i);
  </script>
</html>
